package br.com.sebrae.pr.sgp.util.exceptions;

import javax.ejb.ApplicationException;

/**
 * Classe que representa uma exceção do banco de dados.
 * 
 * @author Tanaka
 */
@ApplicationException(rollback = true)
public class ExcecaoDeBancoDeDados extends ExcecaoDeInfraEstrutura {
	private static final long serialVersionUID = 969016790959570019L;

	private Integer codErroBanco;
	private String msgErroBanco;

	public ExcecaoDeBancoDeDados(Integer codErro, String mensagemErro) {
		super(codErro.toString() + " - " + mensagemErro);
		this.codErroBanco = codErro;
		this.msgErroBanco = mensagemErro;
	}

	public ExcecaoDeBancoDeDados(String mensagemErro) {
		super(mensagemErro);
		this.codErroBanco = 0;
		this.msgErroBanco = mensagemErro;
	}

	public ExcecaoDeBancoDeDados(final Throwable e) {
		super(e);
		final ExcecaoDeBancoDeDados ex = TratadorDeExcecoes
				.recuperaExcecaoDeBancoRaiz(e);
		this.codErroBanco = ex.getCodErroBanco();
		this.msgErroBanco = ex.getMsgErroBanco();
	}

	public Integer getCodErroBanco() {
		return codErroBanco;
	}

	public String getMsgErroBanco() {
		return msgErroBanco;
	}

	public void setMsgErroBanco(String msgErroBanco) {
		this.msgErroBanco = msgErroBanco;
	}

}
